# 作者: 菅世博
# 2025年02月21日15时36分48秒
# 512326042@qq.com
import os
from time import strftime
from time import gmtime


def use_rename():
    os.rename('dir1/file3.txt', 'dir1/file4.txt')


def use_remove():
    """
    只能删普通文件
    :return:
    """
    os.remove('dir1/file4.txt')


def use_listdir():
    """
    列出目录下的文件
    :return:
    """
    files = os.listdir('..')
    print(files)


def use_rmdir():
    """
    只能删除空目录
    :return:
    """
    os.rmdir('dir1')


def use_chdir():
    """
    改变路径
    :return:
    """
    print(os.getcwd())
    os.chdir('dir1')
    file = open('file3.txt', 'w', encoding='utf-8')
    print(os.getcwd())


def scan_dir(path, width):  # 深度优先遍历
    """
    深度优先遍历
    :param width: # 打印的空格
    :param path # 要遍历的目录
    :return:
    """
    file_name_list = os.listdir(path)
    for file_name in file_name_list:
        print(' ' * width + file_name)  # 打印名字
        new_path = path + '/' + file_name  # 拼接为正确的路径
        if os.path.isdir(file_name):  # 是文件夹返回True，不是返回False
            scan_dir(new_path, width + 4)  # 每递归一次加4个空格


def use_stat():
    """
    查看文件信息
    :return:
    """
    file_info = os.stat('file1')
    print('size{},uid{},mtime{}'.format(file_info.st_size, file_info.st_uid, file_info.st_mode, file_info.st_mtime))
    # 把秒数转为字符串时间
    print(strftime("%Y-%m-%d %H:%M:%S", gmtime(file_info.st_mtime)))


if __name__ == '__main__':
    # use_rename()
    # use_remove()
    # use_listdir()
    # use_rmdir()
    # use_chdir()
    # scan_dir('.', 0)
    use_stat()
